package rock.loadbalance;

import rock.common.annotation.SPI;
import rock.remoting.dto.RpcRequest;

import java.util.List;

/**
 * 负载均衡接口
 */
@SPI
public interface LoadBalance {

    /**
     * 从存在的服务地址列表中选择一个
     *
     * @param serviceAddresses 服务地址列表
     * @param request rpc request
     * @return 可用的服务地址
     */
    String selectServiceAddress(List<String> serviceAddresses, RpcRequest request);
}
